Graphs, such as social networks, word co-occurrence networks, andcommunication networks, occur naturally in various real-world applications.Analyzing them yields insight into the structure of society, language, anddifferent patterns of communication. Many approaches have been proposed toperform the analysis. Recently, methods which use the representation of graphnodes in vector space have gained traction from the research community. In thissurvey, we provide a comprehensive and structured analysis of various graphembedding techniques proposed in the literature. We first introduce theembedding task and its challenges such as scalability, choice ofdimensionality, and features to be preserved, and their possible solutions. Wethen present three categories of approaches based on factorization methods,random walks, and deep learning, with examples of representative algorithms ineach category and analysis of their performance on various tasks. We evaluatethese state-of-the-art methods on a few common datasets and compare theirperformance against one another. Our analysis concludes by suggesting somepotential applications and future directions. We finally present theopen-source Python library we developed, named GEM (Graph Embedding Methods,available at https://github.com/palash1992/GEM), which provides all presentedalgorithms within a unified interface to foster and facilitate research on thetopic.
展开▼